﻿package frEngine.loaders.particleSub.particleInstance
{
    import __AS3__.vec.*;
    import baseEngine.utils.*;
    import flash.geom.*;

    public class PlaneParticle extends MeshBase
    {

        public function PlaneParticle(param1:Number = 10, param2:Number = 10, param3:String = "+xy")
        {
            super(4, 5, false, false);
            var _loc_4:uint = 1;
            this.createPlane(param1, param2, param3, _loc_4);
            return;
        }// end function

        private function createPlane(param1:int, param2:int, param3:String, param4:int) : void
        {
            var _loc_5:int = 0;
            var _loc_6:Number = NaN;
            var _loc_7:Number = NaN;
            var _loc_8:Number = NaN;
            var _loc_9:Number = NaN;
            vertexVector = new Vector.<Number>;
            indexVector = new Vector.<uint>;
            var _loc_10:* = new Matrix3D();
            if (param3 == "+xy")
            {
                Matrix3DUtils.setOrientation(_loc_10, new Vector3D(0, 0, -1));
            }
            else if (param3 == "-xy")
            {
                Matrix3DUtils.setOrientation(_loc_10, new Vector3D(0, 0, 1));
            }
            else if (param3 == "+xz")
            {
                Matrix3DUtils.setOrientation(_loc_10, new Vector3D(0, 1, 0));
            }
            else if (param3 == "-xz")
            {
                Matrix3DUtils.setOrientation(_loc_10, new Vector3D(0, -1, 0));
            }
            else if (param3 == "+yz")
            {
                Matrix3DUtils.setOrientation(_loc_10, new Vector3D(1, 0, 0));
            }
            else if (param3 == "-yz")
            {
                Matrix3DUtils.setOrientation(_loc_10, new Vector3D(-1, 0, 0));
            }
            else
            {
                Matrix3DUtils.setOrientation(_loc_10, new Vector3D(0, 0, -1));
            }
            Matrix3DUtils.setScale(_loc_10, param1, param2, 1);
            var _loc_11:* = _loc_10.rawData;
            var _loc_12:* = Matrix3DUtils.getDir(_loc_10);
            _loc_5 = 0;
            _loc_7 = 0;
            while (_loc_7 <= param4)
            {
                
                _loc_6 = 0;
                while (_loc_6 <= param4)
                {
                    
                    _loc_8 = _loc_6 / param4 - 0.5;
                    _loc_9 = _loc_7 / param4 - 0.5;
                    vertexVector.push(_loc_8 * _loc_11[0] + _loc_9 * _loc_11[4] + _loc_11[12], _loc_8 * _loc_11[1] + _loc_9 * _loc_11[5] + _loc_11[13], _loc_8 * _loc_11[2] + _loc_9 * _loc_11[6] + _loc_11[14], 1 - _loc_6 / param4, 1 - _loc_7 / param4);
                    _loc_5++;
                    _loc_6 = _loc_6 + 1;
                }
                _loc_7 = _loc_7 + 1;
            }
            _loc_5 = 0;
            _loc_7 = 0;
            while (_loc_7 < param4)
            {
                
                _loc_6 = 0;
                while (_loc_6 < param4)
                {
                    
                    var _loc_13:* = _loc_5 + 1;
                    indexVector[_loc_13] = (_loc_6 + 1) + _loc_7 * (param4 + 1);
                    var _loc_14:* = _loc_5 + 1;
                    indexVector[_loc_14] = (_loc_6 + 1) + (_loc_7 + 1) * (param4 + 1);
                    var _loc_15:* = _loc_5 + 1;
                    indexVector[_loc_15] = _loc_6 + (_loc_7 + 1) * (param4 + 1);
                    var _loc_16:* = _loc_5 + 1;
                    indexVector[_loc_16] = _loc_6 + _loc_7 * (param4 + 1);
                    var _loc_17:* = _loc_5 + 1;
                    indexVector[_loc_17] = (_loc_6 + 1) + _loc_7 * (param4 + 1);
                    var _loc_18:* = _loc_5 + 1;
                    indexVector[_loc_18] = _loc_6 + (_loc_7 + 1) * (param4 + 1);
                    _loc_6 = _loc_6 + 1;
                }
                _loc_7 = _loc_7 + 1;
            }
            return;
        }// end function

    }
}
